import server from '@/utils/http';
import { PaginationQuery } from '@/types/table';

enum Api {
    template = '/api/template',
    tempQueryStyle = '/api/template/queryStyle',
    getSimilarTemplate = '/api/template/getSimilarTemplate',
    relevanceTemplate = '/api/template/relevanceTemplate',
}

/**
 * @description 我的模板-客户模板列表
 * @param page 页码
 * @param size pageSize
 * @sort 排序方式 默认level,asc
 * @return { content: 列表, totalElements： 总数 }
 */
export const getTemplateData = (query: PaginationQuery): Promise<TableResponse> => {
    return server.Get(Api.template, query);
};

/**
 * @description 根据尺寸查询分屏样式
 * @param direction 方向
 * @param size 尺寸
 * @sort 排序方式 默认level,asc

 */
export const getTempQueryStyle = (direction: string | number, size: string | number): Promise<TableResponse> => {
    return server.Get(Api.tempQueryStyle + `?direction=${direction}&size=${size}`);
};

/**
 *
 * @description 新增模板
 * @param dept info
 */
export const AddTemplate = (params: NormalObj): Promise<void> => {
    return server.Post(Api.template, params);
};

/**
 *
 * @description 查询模板信息
 * @param dept info
 */
export const getTemplate = (codeID: string): Promise<void> => {
    return server.Get(Api.template + '/' + codeID);
};

/**
 *
 * @description 编辑模板
 * @param dept info
 */
export const editTemplate = (params: NormalObj): Promise<void> => {
    return server.Put(Api.template, params);
};

/**
 *
 * @description 查询相同分辨率模板
 * @param dept info
 */
export const getSimilarTemplate = (temLang: string | number, templateCode: string): Promise<TableResponse> => {
    return server.Get(Api.getSimilarTemplate + `?temLang=${temLang}&templateCode=${templateCode}`);
};

/**
 *
 * @description 关联模板
 * @param dept info
 */
export const putRelevanceTemplate = (params: NormalObj): Promise<void> => {
    return server.Put(Api.relevanceTemplate, params);
};

/**
 *
 * @description 删除模板
 * @param dept info
 */
export const delTemplate = (templateCode: string): Promise<void> => {
    return server.Delete(Api.template + '/' + templateCode);
};
